#ifndef __ISTATE_H__
#define __ISTATE_H__


#include <boost/smart_ptr/shared_ptr.hpp>

class CGame;


class IGameState
{
public:
	virtual ~IGameState(){}
	
	virtual void enter(CGame* game)=0;
	virtual void update(CGame* game)=0;
	virtual void exit(CGame* game)=0;
};

typedef boost::shared_ptr<IGameState> GameStatePtr;



#endif